c046e869f9d72eb0c03118233cb81ea0ea639fce,src/plugin/tippers/SafeReference.java,SafeReference,fourthScenario,#PsiElement#,91

Before Change



    private boolean fourthScenario(PsiElement e){
        // (null != x.y) ? x.y : null
        return  iz.conditionalExpression(e) && iz.binaryExpression(az.conditionalExpression(e).getCondition()) &&
                (az.binaryExpression(az.conditionalExpression(e).getCondition()).getOperationSign().getText().equals("!=")) &&
                iz.nullExpression(az.binaryExpression(az.conditionalExpression(e).getCondition()).getLOperand()) &&
                iz.nullExpression(az.conditionalExpression(e).getElseExpression()) &&
                iz.referenceExpression(az.conditionalExpression(e).getThenExpression()) &&
                (az.referenceExpression(az.conditionalExpression(e).getThenExpression()).getQualifier().getText().equals(
                        az.binaryExpression(az.conditionalExpression(e).getCondition()).getROperand().getText()));
    }

After Change



    private boolean fourthScenario(PsiElement e){
        // (null != x.y) ? x.y : null
        boolean cond1 =  iz.conditionalExpression(e) && iz.binaryExpression(az.conditionalExpression(e).getCondition()) &&
                (az.binaryExpression(az.conditionalExpression(e).getCondition()).getOperationSign().getText().equals("!=")) &&
                iz.nullExpression(az.binaryExpression(az.conditionalExpression(e).getCondition()).getLOperand()) &&
                iz.nullExpression(az.conditionalExpression(e).getElseExpression());

        boolean cond2 = cond1 && iz.referenceExpression(az.conditionalExpression(e).getThenExpression()) &&
                (az.referenceExpression(az.conditionalExpression(e).getThenExpression()).getQualifier().getText().equals(
                        az.binaryExpression(az.conditionalExpression(e).getCondition()).getROperand().getText()));

        boolean cond3 = cond1 && iz.MethodCallExpression(az.conditionalExpression(e).getThenExpression()) &&
                (az.MethodCallExresson(az.conditionalExpression(e).getThenExpression()).getMethodExpression().getQualifier().getText().equals(
                        az.binaryExpression(az.conditionalExpression(e).getCondition()).getROperand().getText())) &&
                az.MethodCallExresson(az.conditionalExpression(e).getThenExpression()).getArgumentList().getExpressions().length == 0;

        return (cond2 || cond3);
    }

    @Override